package com.zm.oes.util;

import com.zm.oes.entity.ApiResult;

/**
 * ApiResultHandler工具类，用于创建和配置ApiResult对象
 */
public class ApiResultHandler {

    /**
     * 定义一个success的静态方法，该方法接收一个Object类型的参数object，并返回一个ApiResult对象
     */
    public static ApiResult success(Object object) {
        //在方法内部，创新一个新的ApiResult对象实例，并将其引用赋值给局部变量apiResult
        ApiResult apiResult = new ApiResult();
        //调用apiResult对象的setData方法，并将传入的object参数作为参数传递给该方法
        apiResult.setData(object);
        apiResult.setCode(200); //HTTP状态码200，即请求成功
        apiResult.setMessage("请求成功");
        //返回已配置的apiResult对象
        return apiResult;
    }
    // 定义另一个名为success的静态方法，该方法没有参数
    public static ApiResult success() {
        return success(null);
    }

    /**
     * 定义一个buildApiResult的泛型静态方法
     * 该方法有三个参数：一个整数code，一个字符串message，和一个泛型参数data
     * 这个方法允许你根据提供的参数来构建任意类型的ApiResult对象。
     */
    public static <T> ApiResult buildApiResult(Integer code, String message, T data) {
        //创建一个新的ApiResult对象实例
        ApiResult apiResult = new ApiResult();
        //使用传入的code参数来设置ApiResult对象的代码字段
        apiResult.setCode(code);
        //使用传入的message参数来设置ApiResult对象的消息字段
        apiResult.setMessage(message);
        //使用传入的data参数来设置ApiResult对象的数据字段
        apiResult.setData(data);
        return apiResult;
    }
}
